In recent years, digital communications have become an essential function in virtually every digital device, ranging from miniature hand-held digital devices (e.g. cameras, dual-mode cellular telephones, etc.) to networking equipment (e.g. controllers, routers, etc.). For instance, digital devices may be connected to a local area network (LAN) through Ethernet adapters for wired network communications, or wireless adapters such as those operating according to the well-known IEEE 802.11a/ac/b/g/n standards. Such connectivity enables information to be communicated with other digital devices directly or indirectly connected to the LAN.
In a centralized communication scheme, information commonly in the form of “packets” is forwarded from a digital device connected to the network to another digital device that controls functionality of the network, referred to as a “controller”. Packet communications may be point-to-point, in which ingress packets are terminated at the controller, or carried out in a packet switching environment, in which the ingress packets in a given communication are terminated at the controller or are transient. Transient packets are packets that are received by the controller and are targeted to be forwarded to another device.
Many conventional controllers feature software-based packet forwarding, which poses a significant problem during oversubscription, namely a condition in which the controller is unable to process all of the ingress packets received via its ports. Without undergoing additional expense and labor to upgrade the controller, during oversubscription, ingress packets are simply dropped as needed. This poses a problem as there is no functionality within the packet-forwarding software to prioritize packets so that, as an example, packets terminated at the controller are given a higher processing priority than transient packets and/or are buffered accordingly.